package org.asiainfo.common.flowable.factory;

import jakarta.annotation.Resource;
import lombok.Getter;
import org.flowable.engine.*;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

/**
 * 配置流程引擎工厂
 */
@Component
@Getter
public class FlowServiceFactory {

    /**
     * 提供对流程定义和部署存储库的访问的服务
     */
    @Resource
    protected RepositoryService repositoryService;

    /**
     * 流程存储服务
     */
    @Resource
    protected RuntimeService runtimeService;

    /**
     * 身份管理服务
     */
    @Resource
    protected IdentityService identityService;

    /**
     * 对任务进行管理的功能
     */
    @Resource
    protected TaskService taskService;

    /**
     * 查询和管理流程实例的历史数据
     */
    @Resource
    protected HistoryService historyService;

    /**
     * 提供了流程引擎的管理功能
     */
    @Resource
    protected ManagementService managementService;

    /**
     * 流程引擎的入口，提供了对流程引擎的整体控制和管理
     */
    @Qualifier("processEngine")
    @Resource
    protected ProcessEngine processEngine;
}
